// //引入Joi模块
// const joi = require('joi');

// //定义对象的验证规则
// const schema = {
//     username: joi.string().min(2).max(5).required().error(new Error('username属性没有通过验证'))
//     birth: joi.number().min(1900).max(2020).error(new Error('birth没有通过验证'))
// };

// async function run() {
//     try {
//         //实施验证
//         await joi.validate({username: 'ab', birth: 1800}, schema);
//     }catch (ex) {
//         console.log(ex.message);
//         return;
//     }
//     console.log('验证通过')
// }

// run();

//Joi更新后的写法
const Joi = require('joi');
//新版本里将schema规则改成Joi.object对象的形式
const schema = Joi.object({
    username :Joi.string().min(3).max(12).required().error(new Error('username属性没有通过验证')),
    brith:Joi.number().min(1990).max(2020).error(new Error('brith属性没有通过验证'))
})

//此处为原版写法
// const schema = {
//     username :Joi.string().min(3).max(12).required().error(new Error('username属性没有通过验证')),
//     brith:Joi.number().min(1990).max(2020).error(new Error('brith属性没有通过验证'))
// }

async function run() {
    try {
        await schema.validateAsync({username:'wwww',brith:2020});
        // 下方注释处为原版写法，通过Latest Version: 17.1.1可以对比此处语法已经变更
        // await Joi.validate({username:'wwww',brith:2020},schema);
    } catch(ex) {
        return console.log(ex.message);
        
    }
    console.log('验证通过');
    
}
run();